//
//  BlueUtil.h
//  这是封装CoreBlueTooth的工具类的头文件
//
//  Created by 李卓岚 on 2020/6/22.
//  Copyright © 2020 gao. All rights reserved.
//

#ifndef BlueUtil_h
#define BlueUtil_h

@class CBCentralManager;//如果h头文件没有涉及@class所告诉编译器的类的属性和方法，就可以使用@class，然后在对应的m实现文件#import需要用到的类!!!
@class CBPeripheral;//#import会包含引用类的所有信息(内容),包括引用类的变量和方法,@class仅仅是告诉编译器有这么一个类, 具体这个类里有什么信息, 完全不知,所以@class的编译效率比较高
@class CBCharacteristic;
//@class ScanCallback;
//@class ConnectCallback;
//@class WriteCallback;
//@class ReceiverCallback;
//#import "callback/ScanCallback.h"
//#import "callback/ConnectCallback.h"
//#import "callback/WriteCallback.h"
//#import "callback/ReceiverCallback.h"

@interface BlueToothUtil :NSObject//在头文件使用@property注解会自动帮你生成get、set方法，无法做到属性私有,所以如果属性写在头文件里只能用@private来弄；但是如果直接在.m文件里直接写@property也能达到同样的效果
//一般一个类是在头文件中声明属性和方法，在.m文件中对声明的方法进行实现，并且在头文件中声明了的方法别人是可以访问到的，但没有声明直接在.m文件里进行定义的话，就代表方法是私有的，别人无法访问
@property(nonatomic,strong) NSString * deviceName;//储存在map中的key
-(BOOL)isScanTarget;
-(void)setUuid:(NSString *) blueUuid;
-(void)connectPeripheral;
-(void)disConnectPeripheral;
-(BOOL)stopConnecting;//停止正在连接的行为
-(void)sendDataToBLE:(NSData *)data serviceUuid:(NSString *) serviceUuid writeUuid:(NSString *)writeUuid notifyUuid:(NSString *)notifyUuid isEnable:(BOOL) isEnable;
-(void)setScanCallback:(id) scanCallback;
-(void)setConnectCallback:(id) connectCallback;
-(void)setWriteCallback:(id) writeCallback;
-(void)setReceiverCallback:(id) receiverCallback;
-(void)setKeepScanTime:(int) keepScanTime;
-(BOOL)isInitiativeDisconnect;
@end
#endif
